<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- 
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License. 
-->
<html>
<head>
    <link type="text/css" rel="stylesheet" href="https://struts.apache.org/css/default.css">
    <style type="text/css">
        .dp-highlighter {
            width:95% !important;
        }
    </style>
    <style type="text/css">
        .footer {
            background-image:      url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
            background-repeat:     repeat-x;
            background-position:   left top;
            padding-top:           4px;
            color:                 #666;
        }
    </style>
    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
    <script src='https://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script>
    <script type="text/javascript">
        SyntaxHighlighter.defaults['toolbar'] = false;
        SyntaxHighlighter.all();
    </script>
    <script type="text/javascript" language="javascript">
        var hide = null;
        var show = null;
        var children = null;

        function init() {
            /* Search form initialization */
            var form = document.forms['search'];
            if (form != null) {
                form.elements['domains'].value = location.hostname;
                form.elements['sitesearch'].value = location.hostname;
            }

            /* Children initialization */
            hide = document.getElementById('hide');
            show = document.getElementById('show');
            children = document.all != null ?
                    document.all['children'] :
                    document.getElementById('children');
            if (children != null) {
                children.style.display = 'none';
                show.style.display = 'inline';
                hide.style.display = 'none';
            }
        }

        function showChildren() {
            children.style.display = 'block';
            show.style.display = 'none';
            hide.style.display = 'inline';
        }

        function hideChildren() {
            children.style.display = 'none';
            show.style.display = 'inline';
            hide.style.display = 'none';
        }
    </script>
    <title>JasperReports Plugin</title>
</head>
<body onload="init()">
<table border="0" cellpadding="2" cellspacing="0" width="100%">
    <tr class="topBar">
        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="plugin-developers-guide.html">Plugin Developers Guide</a>&nbsp;&gt;&nbsp;<a href="jasperreports-plugin.html">JasperReports Plugin</a>
        </td>
        <td align="right" valign="middle" nowrap>
            <form name="search" action="https://www.google.com/search" method="get">
                <input type="hidden" name="ie" value="UTF-8" />
                <input type="hidden" name="oe" value="UTF-8" />
                <input type="hidden" name="domains" value="" />
                <input type="hidden" name="sitesearch" value="" />
                <input type="text" name="q" maxlength="255" value="" />
                <input type="submit" name="btnG" value="Google Search" />
            </form>
        </td>
    </tr>
</table>

<div id="PageContent">
    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
        <!-- We'll enable this once we figure out how to access (and save) the logo resource -->
        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; margin: 4px 4px 4px 10px;" border="0"-->
        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 2 Documentation</div>
        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">JasperReports Plugin</div>

        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=14258">
                <img src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Edit Page"></a>
            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=14258">Edit Page</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">
                <img src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Browse Space"></a>
            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">Browse Space</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=14258">
                <img src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Add Page"></a>
            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=14258">Add Page</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=14258">
                <img src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Add News"></a>
            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=14258">Add News</a>
        </div>
    </div>

    <div class="pagecontent">
        <div class="wiki-content">
            <div id="ConfluenceContent"><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p><a shape="rect" class="external-link" href="http://jasperforge.org/sf/projects/jasperreports" rel="nofollow">JasperReports</a> is a powerful open source Java (LGPL) reporting tool that has the ability to deliver rich content onto the screen, to the printer or into PDF, HTML, XLS, CSV and XML files.</p></div></div>

<p>The JasperReports plugin enables Actions to create high-quality reports as results.</p>

<h2 id="JasperReportsPlugin-Features">Features</h2>

<ul><li>Allows Actions to be rendered through JasperReports</li></ul>


<h2 id="JasperReportsPlugin-Usage">Usage</h2>

<p>To use this plugin, have your packages that contain the target actions extend the provided <code>jasperreports-default</code> package, which contains the <code>jasper</code> result type.  Then, simply use the result type in the desired actions.  The result takes the following parameters:</p>

<p></p><p>
Generates a JasperReports report using the specified format or PDF if no
format is specified.
</p>


<p></p><ul></ul><p></p><ul><li><b>location (default)</b> - the location where the compiled jasper report
definition is (foo.jasper), relative from current URL.</li><li><b>dataSource (required)</b> - the EL expression used to retrieve the
datasource from the value stack (usually a List).</li><li><b>parse</b> - true by default. If set to false, the location param will
not be parsed for EL expressions.</li><li><b>format</b> - the format in which the report should be generated. Valid
values can be found in JasperReportConstants. If no format is
specified, PDF will be used.</li><li><b>contentDisposition</b> - disposition (defaults to "inline", values are
typically <i>filename="document.pdf"</i>).</li><li><b>documentName</b> - name of the document (will generate the http header
<code>Content-disposition = X; filename=X.[format]</code>).</li><li><b>delimiter</b> - the delimiter used when generating CSV reports. By
default, the character used is ",".</li><li><b>imageServletUrl</b> - name of the url that, when prefixed with the
context page, can return report images.</li><li>
<b>reportParameters</b> - (2.1.2+) OGNL expression used to retrieve a map of
report parameters from the value stack. The parameters may be accessed
in the report via the usual JR mechanism and might include data not
part of the dataSource, such as the user name of the report creator, etc.
</li><li>
<b>exportParameters</b> - (2.1.2+) OGNL expression used to retrieve a map of
JR exporter parameters from the value stack. The export parameters are
used to customize the JR export. For example, a PDF export might enable
encryption and set the user password to a string known to the report creator.
</li><li>
<b>connection</b> - (2.1.7+) JDBC Connection which can be passed to the
report instead of dataSource
</li><li><b>wrapField</b> - (2.3.18+) defines if fields should warp with ValueStackDataSource
see https://issues.apache.org/jira/browse/WW-3698 for more details
</li></ul>
<p>
This result follows the same rules from StrutsResultSupport.
Specifically, all parameters will be parsed if the "parse" parameter
is not set to false.
</p>

<h3 id="JasperReportsPlugin-Examples">Examples</h3>

<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
&lt;result name=&quot;success&quot; type=&quot;jasper&quot;&gt;
  &lt;param name=&quot;location&quot;&gt;foo.jasper&lt;/param&gt;
  &lt;param name=&quot;dataSource&quot;&gt;mySource&lt;/param&gt;
  &lt;param name=&quot;format&quot;&gt;CSV&lt;/param&gt;
&lt;/result&gt;
]]></script>
</div></div>

<p>or for pdf:</p>

<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
&lt;result name=&quot;success&quot; type=&quot;jasper&quot;&gt;
  &lt;param name=&quot;location&quot;&gt;foo.jasper&lt;/param&gt;
  &lt;param name=&quot;dataSource&quot;&gt;mySource&lt;/param&gt;
&lt;/result&gt;
]]></script>
</div></div>

<h3 id="JasperReportsPlugin-Settings">Settings</h3>

<p>This plugin doesn't provide any global settings.</p>

<h3 id="JasperReportsPlugin-Installation">Installation</h3>

<p>This plugin can be installed by copying the plugin jar into your application's <code>/WEB-INF/lib</code> directory.  No other files need to be copied or created.</p>

<hr>

<p><img class="emoticon emoticon-tick" src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/check.png" data-emoticon-name="tick" alt="(tick)"> See also <a shape="rect" class="external-link" href="http://www.vitarara.org/cms/node/131http://www.vitarara.org/cms/node/131" rel="nofollow">Compiling JasperReports JRXML Files with Maven</a> (Mark Menard)</p></div>
        </div>

        
    </div>
</div>
<div class="footer">
    Generated by CXF SiteExporter
</div>
</body>
</html>
